package client

// 请求体
type Request struct {
	method string // 请求方式
	url    string // 请求url地址
	Header *Header
}

// 创建请求体
func NewRequest() *Request {
	v := Request{
		Header: NewHeader(),
	}

	return &v
}

// 设置请求Method
func (r *Request) Method(method string) *Request {
	r.method = method

	return r
}

// 设置请求地址
func (r *Request) Url(url string) *Request {
	r.url = url
	return r
}

// 设置Get请求
//
//	@param url		请求地址
func (r *Request) Get(url string) *Request {
	r.method = METHOD_GET
	r.url = url

	return r
}

// @param url		请求地址
func (r *Request) Post(url string, body any) *Request {
	// 设置请求头
	r.Header.Set("Content-Type", "application/json")

	r.method = METHOD_POST
	r.url = url

	return r
}

// POST表单请求模式
//
//	@param url		请求地址
func (r *Request) PostForm(url string) *Request {
	// 设置请求头
	r.Header.Set("Content-Type", "application/x-www-form-urlencoded")

	r.method = METHOD_POST
	r.url = url

	return r
}

// POST原始数据模式
//
//	@param url		请求地址
func (r *Request) PostBin(url string) *Request {
	return r
}

// 文件上传模式
//
//	@param url		请求地址
func (r *Request) PostUpload(url string) *Request {
	return r
}
